package so.sao.shop.supplier.service.authorized;

import so.sao.shop.supplier.domain.authorized.Permission;
import so.sao.shop.supplier.pojo.Result;

import java.util.List;

public interface PermissionService {

	public void insert(Permission permission);

	public void startInsert(Permission permission);
	
	public Result<?> findAll();

	/**
	 * 如果传入父id就会查询指定父id的直接子权限，如果不传会查询所有的权限树
	 * @param parentId
	 * @param userId 用户id
	 * @param flag 权限树标记
	 * @return 权限树
	 */
	public Result<?> findAllPermissionTree(Long userId,Long parentId,String flag);

	/**
	 * 根据用户id查询用户权限
	 * @param userId 用户id
	 * @param flag 权限树标记
	 * @return 权限树
	 */
	Result<?> findMenuPermission(Long userId,String flag);

	/**
	 * 查询用户按钮权限树
	 * @param userId 用户id
	 * @param flag 权限树标记
	 * @return 权限树
	 */
	Result<?> findButtonPermission(Long userId,String flag);
	/**
	 * 查询所选角色所有的权限
	 * @param loginUserId
	 * @param roleIds
	 * @return
	 */
	public Result<?> selectRolePermission(Long loginUserId,List<Long> roleIds);

	/**
	 *查询用户权限url集合
	 * @param userId
	 * @return
	 */
	Result<?> findPermissionByUser(Long userId);
}
